"use strict";

// //此处的方法被多个策略管理业务引用（股票、期货、组合以及相应的模拟盘、股票池），在修改时需要考虑影响面。原则上相同的代码都集中在此，不允许多处复制
// var currAccount;
// var currStrategyid = "";
// var currStrategyName = '';
// var currStrategyPage = ''; // 策略列表当前页
// var strategyPage = null; //策略分页条
// var isStockPage = location.href.indexOf('stockStrategy') > 0 || location.href.indexOf('myStockPoolsStra') > 0;
// // 是否虚盘管理
// // 1. 实盘管理中不显示虚拟用户、去除页面登录虚拟用户按钮、并且保证当前选中的用户不是虚拟用户
// // 2. 虚拟账户不显示 accountSelect，并且保证当前用户不是实盘用户
// if (isVirtual) {
//   if ($('#accountSelect').size() > 0) {
//     $('#accountSelect').hide();
//   }
//   if ($('#futuresStrategy').size() > 0) {
//     $('#futuresStrategy').hide();
//   }
//   if ($('#straNamesearchBox').size() > 0) {
//     $('#straNamesearchBox').show(); // 模拟盘才显示按策略名称查询
//   }
//   //add by martin to support Bread crumb
//   $('#myStraBread').attr('href', '/html/myaccount/stockStrategy.html?_menuId=menuVitualStockStra');
// } else {
//   if ($('#btnLoginVirtual').size() > 0)
//     $('#btnLoginVirtual').hide();
// }

(() => {   // (function(){})()

    // 模板字符串
    // ES5
    function htmlStringES5(tem){
      return "<div> " + tem + " </div>";
    }
    // ES6
    function htmlStringES6(tem){
      return `<div> ${ tem } </div>`;
    }
    console.log(htmlStringES5("ES5"),htmlStringES5("ES6"));

    // 在ES5中 作用域是IIFE，但不存在块级作用域，也没法模拟。
    (function(win){
      console.log(win);
    })(Function("return this")());
    // ES6写法
    (() => {
      console.log(this);
    })();

    // 块级作用域1(块级作用域无法用ES5模拟)
    {
        let a = 1;
        var b = 2;
    }
    console.log("作用域1:");
    try{
        console.log(a);
    } catch(e) {
        console.log(e); //undefined
    }
    console.log(b);   // 2

    // 块级作用域2
    console.log("作用域2:");
    for(var i1 = 0; i1 < 10; i1++){}
    console.log(i1);   // 10
    for(let i2 = 0; i2 < 10; i2++){}
    try{
        console.log(i2);
    } catch(e) {
        console.log(e);  //undefined
    }

    // do表达式(这个没有浏览器兼容，只是提案)
    // let x = do {
    //   let t = f();
    //   t * t + 1;
    // };

    // const a; => var a;Object.freeze(a);

    // 可修改
    const i3 = 1;
    try{
        i3 = 2;
    } catch(e) {
        console.log(e); // Assignment to constant variable.
    }

    // 例子2
    const [name1,name2] = [1,2];
    const data1 = {
        name1,
        name2
    };
    console.log(`例子2：${ JSON.stringify(data1) }`); //之前写法是 =>  例子2：+ JSON.stringify(data1)

    // 例子3
    const data2 = {
        name3: 3,
        name4: 4
    };
    const { name3,name4 } = data2;
    console.log(`例子3：${ name3 }  ${ name4 }`);

})();
